From aa08f4d8f5ed60e3fe9e4bd970493582411c25c4 Mon Sep 17 00:00:00 2001 From: Alban Browaeys Date: Mon, 4 Mar 2013 16:22:00 +0100 Subject: [PATCH] bin: initialize out variables to zero for get_preferred_ functions. Fixes case of child not visible then minimum_width/heigth natural_width /heigth not initialized. Thus caller gets a random value. https://bugzilla.gnome.org/show_bug.cgi?id=695131 --- gtk/gtkbin.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gtk/gtkbin.c b/gtk/gtkbin.c index c52ca37fe8..b64f54156d 100644 --- a/gtk/gtkbin.c +++ b/gtk/gtkbin.c @@ -198,6 +198,9 @@ gtk_bin_get_preferred_width (GtkWidget *widget, GtkBinPrivate *priv = bin->priv; gint border_width; + *minimum_width = 0; + *natural_width = 0; + if (priv->child && gtk_widget_get_visible (priv->child)) { gint child_min, child_nat; @@ -221,6 +224,9 @@ gtk_bin_get_preferred_height (GtkWidget *widget, GtkBinPrivate *priv = bin->priv; gint border_width; + *minimum_height = 0; + *natural_height = 0; + if (priv->child && gtk_widget_get_visible (priv->child)) { gint child_min, child_nat; @@ -245,6 +251,9 @@ gtk_bin_get_preferred_width_for_height (GtkWidget *widget, GtkBinPrivate *priv = bin->priv; gint border_width; + *minimum_width = 0; + *natural_width = 0; + border_width = gtk_bin_get_effective_border_width (bin); if (priv->child && gtk_widget_get_visible (priv->child)) @@ -271,6 +280,9 @@ gtk_bin_get_preferred_height_for_width (GtkWidget *widget, GtkBinPrivate *priv = bin->priv; gint border_width; + *minimum_height = 0; + *natural_height = 0; + border_width = gtk_bin_get_effective_border_width (bin); if (priv->child && gtk_widget_get_visible (priv->child)) -- 2.30.2